#ifndef FLATTINGWINDOW_H
#define FLATTINGWINDOW_H

#include <QStatusBar>
#include <QWidget>

#include "droppablewidget.h"
#include "globalaction.h"

/*
    继承了 QWidget GUI类
    整体功能:
        悬浮窗载体
    具体功能：
        1、承接拖拽窗口
        2、相关拖拽窗口类型的statusBars显示，及其快捷键
*/

class FlattingWindow : public QWidget
{
    Q_OBJECT
public:
    FlattingWindow(PagesWidget* pagesWidget, QWidget* parent =nullptr);
    FlattingWindow(const std::pair<DragableTab*, QWidget*> &, QWidget* parent = nullptr);
    ~FlattingWindow() override;

private slots:
    void OnFocusPageChangedSlots();

private:
    void Init();
    void ConnectAll();

    QSharedPointer<GlobalAction> mGlobalAction {nullptr};
    QWidget* mStatusMonitor {nullptr};
    QStatusBar* mStatusBar {nullptr};
    DroppableWidget* mDroppableWidget {nullptr};
    QVBoxLayout* mLayout{nullptr};
};

#endif // FLATTINGWINDOW_H
